﻿using System;
using DAL;
using VO;
using COMMON;

namespace BLL
{
    public class HistoricoAtendimentoBLL
    {

        #region Insert
        public static Retorno<HistoricoAtendimento> Insert(HistoricoAtendimento obj)
        {
            var objReturn = new Retorno<HistoricoAtendimento>();
            try
            {
                //Insere Campanha
                new HistoricoAtendimentoDAL().Insert(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Update
        public static Retorno<HistoricoAtendimento> Update(HistoricoAtendimento obj)
        {
            var objReturn = new Retorno<HistoricoAtendimento>();
            try
            {
                //Altera Regra
                new HistoricoAtendimentoDAL().InsereHistoricoAtendimento(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region selectHistoricoAtendimentoFiltro
        public static Retorno<HistoricoAtendimento> selectHistoricoAtendimentoFiltro(FiltroHistoricoAtendimento obj)
        {
            var objReturn = new Retorno<HistoricoAtendimento>();
            try
            {
                //Lista histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().selectHistoricoAtendimentoFiltro(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region selectTempoTotalHistoricoAtendimentoFiltro
        public static Retorno<HistoricoAtendimento> selectTempoTotalHistoricoAtendimentoFiltro(FiltroHistoricoAtendimento obj)
        {
            var objReturn = new Retorno<HistoricoAtendimento>();
            try
            {
                //Retorna tempo total do histórico de atendimento
                objReturn.ID = new HistoricoAtendimentoDAL().selectTempoTotalHistoricoAtendimentoFiltro(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region selectRankingHistoricoAtendimentoFiltro
        public static Retorno<HistoricoAtendimento> selectRankingHistoricoAtendimentoFiltro(FiltroHistoricoAtendimento obj)
        {
            var objReturn = new Retorno<HistoricoAtendimento>();
            try
            {
                //Retorna tempo total do histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().selectRankingHistoricoAtendimentoFiltro(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectHistoricoStatus
        public static Retorno<StatusAtendimento> SelectHistoricoStatus()
        {
            var objReturn = new Retorno<StatusAtendimento>();
            try
            {
                //Lista Status do histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().SelectHistoricoStatus();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectHistoricoCampanha
        public static Retorno<Campanha> SelectHistoricoCampanha()
        {
            var objReturn = new Retorno<Campanha>();
            try
            {
                //Lista Campanha do histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().SelectHistoricoCampanha();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectHistoricoAtendente
        public static Retorno<Atendente> SelectHistoricoAtendente()
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Lista Atendente do histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().SelectHistoricoAtendente();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectHistoricoCliente
        public static Retorno<Cliente> SelectHistoricoCliente()
        {
            var objReturn = new Retorno<Cliente>();
            try
            {
                //Lista Cliente do histórico de atendimento
                objReturn.List = new HistoricoAtendimentoDAL().SelectHistoricoCliente();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}